草庐IT

c++ - CreateFile 和长设备名

全部标签

c++ - 多线程不利用多核?

我的电脑是双核core2Duo。我已经在应用程序的缓慢区域实现了多线程,但我仍然注意到CPU使用率从未超过50%,并且在多次迭代后仍然滞后。这是正常的吗?我希望它能让我的cpu达到100%,因为我将它分成4个线程。为什么它仍然可以限制在50%?谢谢参见WhatamIdoingwrong?(multithreading)对于我的实现,除了我修复了该代码存在的问题 最佳答案 查看您的代码,您在紧密循环中进行了大量分配——在每次迭代中,您动态分配两个双元素vector,然后将它们推回结果vector(从而复制这些vector);最后一次推

c++ - 从 Windows 网络位置打开文件

我可以从已安装的网络驱动器打开文件,但不能从未安装的网络驱动器打开文件,例如\\mycomp\folder2\hi.bmp有什么解决办法吗? 最佳答案 以下代码片段对我有用:charbuffer[1000];FILE*file;size_tbytesRead;file=fopen("\\\\server\\share\\test.dat","rb");if(file!=NULL){bytesRead=fread(buffer,sizeof(char),sizeof(buffer),file);fclose(file);}另请注意fo

c++ - 谁能解释为什么这两个转换为 unsigned long long 会产生不同的结果?

LARGE_INTEGERlpPerformanceCount,lpFrequency;QueryPerformanceCounter(&lpPerformanceCount);QueryPerformanceFrequency(&lpFrequency);(Count.QuadPart是一个显示CPU计数的longlong)(Freq.QuadPart是一个longlong,表示秒数的频率)尝试实时打印微秒。稳定输出:printf("%llu\n",((longdouble)lpPerformanceCount.QuadPart/lpFrequency.QuadPart)*10000

windows - 获取磁盘设备的物理设备对象名称

我需要从Windows上的用户模式应用程序检索磁盘设备的“物理设备对象名称”,如设备管理器中所示。我现在有一个解决方案,它涉及一个通过IOCTL加载和询问的内核驱动程序。一旦进入内核领域,我就可以毫不费力地找到那个名字。如果可能,我想避免使用内核模块。有什么想法吗? 最佳答案 您可以使用设置API函数获取它。具体来说,我相信您可以通过SetupDiGetDeviceRegistryProperty和SPDRP_PHYSICAL_DEVICE_OBJECT_NAME获得它。 关于windo

windows - 从 NT/设备名称获取文件路径

我想将设备路径转换为文件路径。我想通过进程id获取进程名,所以我用的是这段代码PsLookupProcessByProcessId(processId,&pEProcess);ObOpenObjectByPointer(pEProcess,OBJ_KERNEL_HANDLE,NULL,0,NULL,KernelMode,&hProcess);ObDereferenceObject(pEProcess);nts=ZwQueryInformationProcess(hProcess,27,0,0,&ulSize);但它给出的路径为\Device\hardDiskVolume1\window

c - 防止过多的 LoadLibrary/FreeLibrary

我正在编写一个代理库(称为库A),它只是与系统上可能存在或不存在的另一个DLL(称为库B)的接口(interface)。这个想法是程序将链接到这个库A而不是原始库B;如果系统上没有安装库B,库A将处理错误。所以一个典型的代理函数看起来像这样:intfunction(intarg1,intarg2){HINSTANCEhinstLib;UINTerrormode=SetErrorMode(SEM_FAILCRITICALERRORS);SetErrorMode(errormode|SEM_FAILCRITICALERRORS);hinstLib=LoadLibrary(TEXT(ORIG

c++ - 使用 C++ 扫描本地 Windows 系统以查找连接的 USB 设备

使用C++扫描本地Windows系统以查找连接的USB设备的最佳方法是什么?我需要获取供应商和产品ID列表以匹配我的设备ID。如果有一种方法可以扫描特定的VID/PID组合,那就更好了。我的最终目标是检索Windows分配给设备的虚拟COM端口。如果有办法做到这一切,那就太棒了。一如既往,非常感谢示例。谢谢。 最佳答案 这几乎是您想要的MSDN示例:http://msdn.microsoft.com/en-us/library/ff558728%28VS.85%29.aspx如果您想访问这种功能,您似乎需要WDK(我能想到的每个MS

c++ - DeleteIPAddress 和 AddIpAddress 问题

我试着用这个函数编写添加ip地址的程序DWORDAddIPAddress(__inIPAddrAddress,__inIPMaskIpMask,__inDWORDIfIndex,__outPULONGNTEContext,__outPULONGNTEInstance);我添加了,但是怎么删除呢。DeleteIPAddress将NTEContext作为参数我如何在MSDN中获取它,他们写道它由AddIPAddress函数返回但是当我第二次使用相同的ip地址调用它时它返回错误2.怎么办?我可以在cmd中使用Ipconfig命令查看添加的ip地址,可能还有其他方法可以手动查看或删除它

c++ - 取消WIN32线程池中计划的work/io/timer项

我一直在研究Windows的(新的?)线程池API。我一直在关注UsingtheThreadPoolFunctions中的示例我一直在仔细研究MSDN上的API。关于清理组,我有些不明白。调用SetThreadpoolCallbackCleanupGroup()时,第三个参数描述为Thecleanupcallbacktobecalledifthecleanupgroupiscanceledbeforetheassociatedobjectisreleased.ThefunctioniscalledwhenyoucallCloseThreadpoolCleanupGroupMembers

c++ - AssociateColorProfileWithDevice,你从哪里得到设备名称?

http://msdn.microsoft.com/en-us/library/dd371799(v=VS.85).aspx所以签名是这样的:BOOLWINAPIAssociateColorProfileWithDevice(PCTSTRpMachineName,PCTSTRpProfileName,PCTSTRpDeviceName);p机器名预订的。必须为NULL。此参数旨在指向要在其上关联指定配置文件和设备的机器的名称。NULL指针表示本地机器。p个人资料名称指向要关联的配置文件的文件名。p设备名称指向要关联的设备的名称。pMachineName假设为空,这很简单。pProfil